<html>
<head><meta charset="utf-8"><title>weekly meeting 2019-03-04 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html">weekly meeting 2019-03-04</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="159939685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159939685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159939685">(Mar 04 2019 at 18:59)</a>:</h4>
<p>Howdy all <span aria-label="wave" class="emoji emoji-1f44b" role="img" title="wave">:wave:</span></p>



<a name="159939783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159939783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159939783">(Mar 04 2019 at 19:00)</a>:</h4>
<p>cc <span class="user-group-mention" data-user-group-id="692">@WG-compiler-traits</span> -- meeting soon</p>



<a name="159939854"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159939854" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159939854">(Mar 04 2019 at 19:01)</a>:</h4>
<p>When we last met, we had <a href="https://internals.rust-lang.org/t/traits-working-group-meeting-minutes/9519/2?u=nikomatsakis" target="_blank" title="https://internals.rust-lang.org/t/traits-working-group-meeting-minutes/9519/2?u=nikomatsakis">these conclusions</a>:</p>
<ul>
<li>Schedule a meeting to dig into some of the **lifetime problems around<br>
  async-await**. This is kind of an "intersecting" issue between async await<br>
  and the traigs WG, but seems high priority. (nikomatsakis)</li>
<li><strong>Explore the use cases for lazy normalization</strong>, trying to create a summary <br>
  of exactly which test cases are causing problems and why, and what it might<br>
  take to fix them (can it be done without a full chalk transition?). (nikomatsakis)</li>
<li><strong>Explore the use cases for GATs</strong>, trying to find a set of specific examples <br>
  from async-await and other contexts. It seems likely that we could do an initial<br>
  impl of GATs in rustc without chalk, but would it be enough? (aturon, centril)</li>
<li>Schedule a meeting to <strong>dig into the chalk transition</strong> -- what is<br>
  current status and what are the possible future routes, what should<br>
  we be exploring? (nikomatsakis, scalexm)</li>
<li>Get tests plus FCP around <code>type Foo = impl Bar</code> (centril)</li>
</ul>



<a name="159939976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159939976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159939976">(Mar 04 2019 at 19:02)</a>:</h4>
<p>Maybe we can quickly check-in on how those went. I can speak to the first: <span class="user-mention" data-user-id="127859">@Taylor Cramer</span> and I had a meeting, and we found some solutions to the problems that async await faces, -- the tl;dr is that we can desugar <code>async fn</code> differently, so we don't need to change anything "fundamental" here.</p>



<a name="159940007"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940007" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940007">(Mar 04 2019 at 19:03)</a>:</h4>
<p>Specifically, the issue had to do lifetime capture in <code>async fn</code>.</p>



<a name="159940028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940028">(Mar 04 2019 at 19:03)</a>:</h4>
<p>That said, <span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> and I have been talking about still pursuing some solution to the so-called "captures problem" in impl Trait, even if it turns out not to be needed in this instance.</p>



<a name="159940070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940070">(Mar 04 2019 at 19:04)</a>:</h4>
<p>I think probably the thing to do there would be to schedule a meeting and try to talk out the problem.</p>



<a name="159940188"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940188" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940188">(Mar 04 2019 at 19:05)</a>:</h4>
<p>As for the second bullet, <strong>exploring the use cases for lazy normalization</strong> -- I did a bit of this, as I <a href="#narrow/stream/144729-t-compiler.2Fwg-traits/topic/lazy.20normalization/near/159453334" title="#narrow/stream/144729-t-compiler.2Fwg-traits/topic/lazy.20normalization/near/159453334">wrote in this Zulip comment here</a>. I reached out to a few folks. I concluded that the best thing would be to dig into and document better the flow of how normalization is working <strong>now</strong>. I didn't really have the time to finish that up last week, but I was hoping to schedule a recorded Zoom call to walk through it</p>



<a name="159940210"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940210" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940210">(Mar 04 2019 at 19:05)</a>:</h4>
<p>I am not sure if I'll have time to do that exploration this week or not, but I'd still like to.</p>



<a name="159940289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940289">(Mar 04 2019 at 19:06)</a>:</h4>
<p>Third bullet (GATs) I think we had said <span class="user-mention" data-user-id="116010">@Aaron Turon</span> and <span class="user-mention" data-user-id="126931">@centril</span> might pursue?</p>



<a name="159940294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940294">(Mar 04 2019 at 19:06)</a>:</h4>
<p>For the third bullet, I ended up spending the week rewriting Tide and didn't dive into GATs yet</p>



<a name="159940313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940313">(Mar 04 2019 at 19:06)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> after this  meeting, let's set a time for you and I to dig into GATs this week</p>



<a name="159940357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940357">(Mar 04 2019 at 19:07)</a>:</h4>
<p>OK, I think I had mentioned that I had a use case or two and I forget, <span class="user-mention" data-user-id="126931">@centril</span>, if I ever sent those to you</p>



<a name="159940359"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940359" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940359">(Mar 04 2019 at 19:07)</a>:</h4>
<p>(i still think the stated goal is a good one)</p>



<a name="159940463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940463">(Mar 04 2019 at 19:08)</a>:</h4>
<p>If not, it's basically an "iterable" pattern, for iterating over the successors of graph nodes; you can see the <a href="https://github.com/rust-lang/rust/blob/a9da8fc9c267c08cfdb8cf5b39da14f154d12939/src/librustc_data_structures/graph/mod.rs#L20-L28" target="_blank" title="https://github.com/rust-lang/rust/blob/a9da8fc9c267c08cfdb8cf5b39da14f154d12939/src/librustc_data_structures/graph/mod.rs#L20-L28">traits here that the compiler uses</a>, which basically work-around the lack of GATs by having auxiliary traits.</p>



<a name="159940483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940483">(Mar 04 2019 at 19:08)</a>:</h4>
<p>noted, thanks <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="159940496"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940496" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940496">(Mar 04 2019 at 19:08)</a>:</h4>
<p>OK, on to the fourth bullet -- Chalk integration -- well, <span class="user-mention" data-user-id="131694">@scalexm</span> and I never scheduled a meeting, but I <strong>did</strong> schedule a different meeting that is relevant.</p>



<a name="159940537"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940537" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940537">(Mar 04 2019 at 19:09)</a>:</h4>
<p>Specifically, tomorrow "around" this time -- see the rustc calendar -- is the "RLS 2.0 Type Checker Overview"</p>



<a name="159940552"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940552" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940552">(Mar 04 2019 at 19:09)</a>:</h4>
<p>I'm thinking a lot about the idea of trying to integrate chalk into the RLS 2.0 system</p>



<a name="159940582"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940582" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940582">(Mar 04 2019 at 19:09)</a>:</h4>
<p>As a quicker and less risky route to proving the system out</p>



<a name="159940642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940642">(Mar 04 2019 at 19:10)</a>:</h4>
<p>The meeting there is meant to cover how the RLS 2.0 system is <strong>currently</strong> handling types and type checking</p>



<a name="159940669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940669">(Mar 04 2019 at 19:10)</a>:</h4>
<p>But I think what I would like to shoot for is that we can establish a shared library to represent types</p>



<a name="159940674"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940674" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940674">(Mar 04 2019 at 19:10)</a>:</h4>
<p>That is used by the chalk front-end (not rustc) and RLS 2.0</p>



<a name="159940695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940695">(Mar 04 2019 at 19:10)</a>:</h4>
<p>And then perhaps also share the "lowering" code in chalk between RLS 2.0 and chalk</p>



<a name="159940711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940711">(Mar 04 2019 at 19:11)</a>:</h4>
<p>So that we have dramatically more code sharing</p>



<a name="159940729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940729">(Mar 04 2019 at 19:11)</a>:</h4>
<p>With the hope that -- eventually -- rustc could be ported to share these libraries too</p>



<a name="159940765"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940765" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940765">(Mar 04 2019 at 19:11)</a>:</h4>
<p>(Plus, eventually, that these libraries would be used to build a canonical type checker library that can be shared between RLS 2.0 and rustc)</p>



<a name="159940788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940788">(Mar 04 2019 at 19:11)</a>:</h4>
<p>Anyway, I think <span class="user-mention" data-user-id="131694">@scalexm</span> plans to attend that RLS 2.0 meeting, and I suppose we'll try to schedule a follow-up to talk things out</p>



<a name="159940855"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940855" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940855">(Mar 04 2019 at 19:12)</a>:</h4>
<p>I also had some other chalk-related thoughts over the weekend</p>



<a name="159940894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940894">(Mar 04 2019 at 19:12)</a>:</h4>
<p>One thing I was thinking is that we should try to find standard "logic programming" benchmarks and build harnesses that connect them to chalk-engine</p>



<a name="159940904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940904">(Mar 04 2019 at 19:13)</a>:</h4>
<p>so we can benchmark and optimize chalk-engine</p>



<a name="159940913"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940913" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940913">(Mar 04 2019 at 19:13)</a>:</h4>
<p>independently from rustc and anything else</p>



<a name="159940943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940943">(Mar 04 2019 at 19:13)</a>:</h4>
<p>Regarding GATs, maybe it would be worth reviewing the various logical rules we modeled in chalk before even trying to implement them in rustc, as I believe they correctly describe the « type-checking » rules and disclose the few corner cases</p>



<a name="159940960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159940960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159940960">(Mar 04 2019 at 19:13)</a>:</h4>
<p>And I guess just that there remains some amount of refactoring etc that make sense to do on <strong>chalk itself</strong>, as we've said before.</p>



<a name="159941048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941048">(Mar 04 2019 at 19:14)</a>:</h4>
<p>Yeah, that makes sense to me -- I guess once we have some idea of the use cases, it would be good to try and evaluate those use cases on Chalk itself?</p>



<a name="159941051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941051">(Mar 04 2019 at 19:14)</a>:</h4>
<p>And talk out how it works?</p>



<a name="159941083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941083">(Mar 04 2019 at 19:14)</a>:</h4>
<blockquote>
<p>I'm thinking a lot about the idea of trying to integrate chalk into the RLS 2.0 system</p>
</blockquote>
<p><span class="user-mention" data-user-id="131694">@scalexm</span> I'm curious what you think about this direction, btw</p>



<a name="159941132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941132">(Mar 04 2019 at 19:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> I think that’s a very good idea</p>



<a name="159941150"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941150" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941150">(Mar 04 2019 at 19:15)</a>:</h4>
<p>OK, cool, for some reason I think I felt you were skeptical :)</p>



<a name="159941164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941164">(Mar 04 2019 at 19:15)</a>:</h4>
<p>But the more I think about it, the better I feel about it</p>



<a name="159941167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941167">(Mar 04 2019 at 19:15)</a>:</h4>
<p>Hopefully it will help us refactor chalk so that its API is more user-friendly</p>



<a name="159941225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941225">(Mar 04 2019 at 19:16)</a>:</h4>
<p>And eventually may help us integrate it in rustc</p>



<a name="159941240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941240">(Mar 04 2019 at 19:16)</a>:</h4>
<p>Right. It also helps to close a gap that RLS 2.0 has -- basically I think it's imperative that we are able to get RLS 2.0 up and going as fast as possible</p>



<a name="159941277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941277">(Mar 04 2019 at 19:17)</a>:</h4>
<p>So that we can kind of sell it as a reasonably full featured (if experimental) alternative to RLS 1.0</p>



<a name="159941342"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941342" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941342">(Mar 04 2019 at 19:17)</a>:</h4>
<p>I guess we'll see how far we get in the meeting tomorrow; we can talk follow-up plans after that</p>



<a name="159941416"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941416" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941416">(Mar 04 2019 at 19:18)</a>:</h4>
<p>OK, so that's 18 minutes in, I guess we should turn to what we plan to do this week. I'm guessing to some extent we'll continue the same basic goals as last week.</p>



<a name="159941446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941446">(Mar 04 2019 at 19:18)</a>:</h4>
<p>SGTM -- I do have one additional item to raise</p>



<a name="159941464"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941464" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941464">(Mar 04 2019 at 19:19)</a>:</h4>
<p>which is that Derek Dreyer has a potential research  intern and is considering trying to have them do something with Chalk</p>



<a name="159941476"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941476" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941476">(Mar 04 2019 at 19:19)</a>:</h4>
<p>but needs help figuring out  whether that would make sense</p>



<a name="159941509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941509">(Mar 04 2019 at 19:19)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> i know you're extremely busy, but would you be interested in joining that discussion? if not, could  spend a couple minutes here brainstorming</p>



<a name="159941523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941523">(Mar 04 2019 at 19:19)</a>:</h4>
<p>(he was hoping to chat about this today or  tomorrow)</p>



<a name="159941533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941533">(Mar 04 2019 at 19:20)</a>:</h4>
<p>What do you mean "joining"? Ah, ok</p>



<a name="159941592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941592">(Mar 04 2019 at 19:20)</a>:</h4>
<p>Not sure if I'll have time today/tomorrow</p>



<a name="159941618"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941618" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941618">(Mar 04 2019 at 19:20)</a>:</h4>
<p>What kind of tasks did he have in mind?</p>



<a name="159941624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941624">(Mar 04 2019 at 19:20)</a>:</h4>
<p>I could imagine this person working on the specialization stuff</p>



<a name="159941626"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941626" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941626">(Mar 04 2019 at 19:20)</a>:</h4>
<p>(for example)</p>



<a name="159941638"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941638" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941638">(Mar 04 2019 at 19:20)</a>:</h4>
<p>yeah -- i think it would need to hew toward the theoretical</p>



<a name="159941667"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941667" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941667">(Mar 04 2019 at 19:21)</a>:</h4>
<p>here's what i initially wrote  him</p>



<a name="159941672"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941672" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941672">(Mar 04 2019 at 19:21)</a>:</h4>
<p>Or perhaps trying to prove soundness of things like implied bounds (<span class="user-mention" data-user-id="131694">@scalexm</span> did some preliminary proofs, but we could make them tighter)</p>



<a name="159941677"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941677" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941677">(Mar 04 2019 at 19:21)</a>:</h4>
<p>## Theory</p>
<ul>
<li>
<p>Nailing down the underlying logic. We've toyed with various extensions of Prolog, including incorporating some modal reasoning. There's often a trade between a more expressive core logic for Chalk versus just "encoding" higher-level concerns through lower-level logical primitives. In general, pinpointing the exact logic we need and studying its theory could be very fruitful.</p>
</li>
<li>
<p>Modeling the trait system formally through the lends of Chalk. Once we have a theory of the underlying logic established, we could go on to study the trait system as elaborated into that underlying logic. Goals here would include showing the soundness of various specialization approaches and other extensions to the trait system (such as going to higher kinds).</p>
</li>
<li>
<p>There remain some sticky issues around recursive trait implementations. I don't offhand know exactly where we are on that front, but elucidating the theory there (and showing soundness) would be extremely helpful.</p>
</li>
</ul>
<p>## Implementation</p>
<ul>
<li>
<p>Assuming we clearly nail down the core logic we want to use, studying implementation techniques and ensuring that we're doing something reasonable there would be very valuable. Niko has done some of this work but one could definitely go deeper.</p>
</li>
<li>
<p>There's also plenty of raw implementation work to do, including figuring out how to encode more of the existing trait system in the Chalk approach.</p>
</li>
</ul>



<a name="159941728"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941728" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941728">(Mar 04 2019 at 19:21)</a>:</h4>
<p>ok, so we can add specialization + implied bounds</p>



<a name="159941778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941778">(Mar 04 2019 at 19:22)</a>:</h4>
<blockquote>
<p>There remain some sticky issues around recursive trait implementations</p>
</blockquote>
<p>I don't know exactly what this means</p>



<a name="159941822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941822">(Mar 04 2019 at 19:22)</a>:</h4>
<p>ah sorry, that was meant to refer to the old auto trait issues and how they interacted with implied bounds -- i wasn't sure if that's now fully settled or if there's more we'd like to understand</p>



<a name="159941826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941826">(Mar 04 2019 at 19:22)</a>:</h4>
<p>I guess what I was talking about (soundness of implied bounds) probably fits under this heading:</p>
<blockquote>
<p>Once we have a theory of the underlying logic established, we could go on to study the trait system as elaborated into that underlying logic.</p>
</blockquote>



<a name="159941892"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941892" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941892">(Mar 04 2019 at 19:23)</a>:</h4>
<blockquote>
<p>ah sorry, that was meant to refer to the old auto trait issues and how they interacted with implied bounds -- i wasn't sure if that's now fully settled or if there's more we'd like to understand</p>
</blockquote>
<p>I see. Well, I still feel like there are some "question marks" in my mind, especially around inductive/co-inductive reasoning</p>



<a name="159941926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941926">(Mar 04 2019 at 19:23)</a>:</h4>
<p>Right now we use a mix, for example, which I'm not crazy about. And there are times when you would really like co-inductive reasoning everywhere -- e.g. to enable so-called "perfect derive"</p>



<a name="159941983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159941983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159941983">(Mar 04 2019 at 19:24)</a>:</h4>
<p>But we'd need to address the soundness problems there, particularly (only?) when you add implied bounds to the mix</p>



<a name="159942009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942009">(Mar 04 2019 at 19:24)</a>:</h4>
<p>OK, it sounds like my initial response  was at least in the ballpark; i should be able to elaborate it out with him this week, and then if the intern ends up happening we can work out a specific project</p>



<a name="159942021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942021">(Mar 04 2019 at 19:24)</a>:</h4>
<p>Yeah, I think that's right</p>



<a name="159942041"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942041" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942041">(Mar 04 2019 at 19:24)</a>:</h4>
<p>One question related to async-await.. at the all-hands someone mentioned a solution to <code>async fn</code> in traits "without GATs"... has that effort basically morphed into the effort to implement GATs in rustc without chalk, or is it a separate ongoing effort? (or did I misunderstand?)</p>



<a name="159942080"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942080" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942080">(Mar 04 2019 at 19:25)</a>:</h4>
<p>Auto traits are a weird thing indeed, notably we can form cycles of the form <code>p :- q :- p</code> where p is co-inductive and q is not; we currently reject these cycles, but I remember that in the original co-induction paper, programs which exhibit these kinds of cycles are considered ill-formed</p>



<a name="159942110"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942110" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942110">(Mar 04 2019 at 19:25)</a>:</h4>
<p>Maybe that « works » in our setup because indeed auto traits are very simple predicates with no super traits etc</p>



<a name="159942122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942122">(Mar 04 2019 at 19:25)</a>:</h4>
<blockquote>
<p>Maybe that « works » in our setup because indeed auto traits are very simple predicates with no super traits etc</p>
</blockquote>
<p>well this is partly why they have no supertraits, I think</p>



<a name="159942175"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942175" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942175">(Mar 04 2019 at 19:26)</a>:</h4>
<p>But I’m definitely not sure we have solved all the theoretical issues around them</p>



<a name="159942176"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942176" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942176">(Mar 04 2019 at 19:26)</a>:</h4>
<p>but indeed that's the sort of thing where I feel like we could have a "crisper" statement of what we want</p>



<a name="159942180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scalexm <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942180">(Mar 04 2019 at 19:26)</a>:</h4>
<p>Yes</p>



<a name="159942222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942222">(Mar 04 2019 at 19:26)</a>:</h4>
<blockquote>
<p>One question related to async-await.. at the all-hands someone mentioned a solution to <code>async fn</code> in traits "without GATs"... has that effort basically morphed into the effort to implement GATs in rustc without chalk, or is it a separate ongoing effort? (or did I misunderstand?)</p>
</blockquote>
<p><span class="user-mention" data-user-id="116883">@tmandry</span>  we haven't really talked about this here; I think it was <span class="user-mention" data-user-id="203289">@boats</span> pondering whether it would be possible (or desirable) to try and support <code>async fn</code> in traits. The idea would basically be to sort of "hard-code" the GAT in question in the compiler. I haven't thought very much about whether this makes sense and what would be needed on the impl side.</p>



<a name="159942257"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942257" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942257">(Mar 04 2019 at 19:27)</a>:</h4>
<p>that said, we effectively do a similar thing for <strong>all</strong> methods now</p>



<a name="159942269"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942269" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942269">(Mar 04 2019 at 19:27)</a>:</h4>
<p>e.g., </p>
<div class="codehilite"><pre><span></span><span class="k">trait</span><span class="w"> </span><span class="n">Foo</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">  </span><span class="k">fn</span> <span class="nf">bar</span><span class="o">&lt;</span><span class="n">T</span><span class="o">&gt;</span><span class="p">();</span><span class="w"> </span><span class="c1">// &lt;-- since each method has a unique type, this is a kind of GAT</span>
<span class="p">}</span><span class="w"></span>
</pre></div>



<a name="159942290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942290">(Mar 04 2019 at 19:28)</a>:</h4>
<p>so I think the idea was that perhaps we could handle <code>async fn</code> in a similar way</p>



<a name="159942351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942351">(Mar 04 2019 at 19:28)</a>:</h4>
<p>in the compiler, this is done by having a <code>TyFnDef</code> item whose substitutions (<code>substs</code>) include the values for the method's type parameters</p>



<a name="159942374"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942374" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942374">(Mar 04 2019 at 19:28)</a>:</h4>
<p>so you might imagine having a sort of <code>TyFnFuture</code> for <code>async fn</code> or something</p>



<a name="159942390"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942390" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942390">(Mar 04 2019 at 19:28)</a>:</h4>
<p>kind of a built-in concept that we only handle and resolve during trans process</p>



<a name="159942427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942427">(Mar 04 2019 at 19:29)</a>:</h4>
<p>I'm kind of luke-warm on the idea. It might make sense, but it's not the overall direction I want rustc's type system to be moving</p>



<a name="159942430"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942430" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942430">(Mar 04 2019 at 19:29)</a>:</h4>
<p>which is fewer "special cases"</p>



<a name="159942441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942441">(Mar 04 2019 at 19:29)</a>:</h4>
<p>OTOH I would like <code>async fn</code> in traits :P</p>



<a name="159942459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> tmandry <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942459">(Mar 04 2019 at 19:29)</a>:</h4>
<p>makes sense</p>



<a name="159942716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942716">(Mar 04 2019 at 19:32)</a>:</h4>
<p>So plans for this week are:</p>
<ul>
<li>Describe how normalization works today and hold a (recorded) call to try and explain it to others. Trace through some of the examples where lazy norm would be helpful. (nikomatsakis)</li>
<li><strong>Explore the use cases for GATs</strong> (aturon, centril)</li>
<li>Discuss RLS 2.0 type checker and contemplate how to integrate chalk into it (nikomatsakis, scalexm)</li>
<li>Maybe discuss other chalk improvements? (e.g., benchmarking harness) (nikomatsakis) </li>
<li>Maybe discuss the "lifetime capture" problem in impl Trait? (nikomatsakis, alexreg)</li>
</ul>



<a name="159942774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942774">(Mar 04 2019 at 19:33)</a>:</h4>
<p>I don't love how many things have my name on there ;) I'm curious if we can find someone who has time to kind of "own" chalk</p>



<a name="159942778"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942778" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942778">(Mar 04 2019 at 19:33)</a>:</h4>
<p>Let me rephrase that</p>



<a name="159942800"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942800" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942800">(Mar 04 2019 at 19:33)</a>:</h4>
<p>Not own chalk as a whole, but to help organize and guide refactorings on the chalk codebase especially</p>



<a name="159942810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942810">(Mar 04 2019 at 19:33)</a>:</h4>
<p>but I think we probably want to work through the RLS 2.0 integration stuff a bit more to have a better idea what we have planned</p>



<a name="159942878"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942878" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942878">(Mar 04 2019 at 19:34)</a>:</h4>
<p>yeah -- I  was gonna say, I'd be willing/able, but it depends a  bit what direction we go with for GATs</p>



<a name="159942881"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942881" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942881">(Mar 04 2019 at 19:34)</a>:</h4>
<p>Does anyone have any other things they are interested in adding to that list of trait wg goals for the week?</p>



<a name="159942896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942896">(Mar 04 2019 at 19:34)</a>:</h4>
<p>(i.e. whether it makes more sense for me to focus on rustc or Chalk for now)</p>



<a name="159942911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942911">(Mar 04 2019 at 19:34)</a>:</h4>
<p>Yeah, let's let it sit for a bit</p>



<a name="159942920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942920">(Mar 04 2019 at 19:34)</a>:</h4>
<p>I think there's still a bit of uncertainty in my mind about that</p>



<a name="159942944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942944">(Mar 04 2019 at 19:35)</a>:</h4>
<p>yeah, so i think focusing this week on getting more clarity on  that question will be really helpful</p>



<a name="159942956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942956">(Mar 04 2019 at 19:35)</a>:</h4>
<p>or like, questions around Chalk direction in general (both RLS and GAT approach)</p>



<a name="159942985"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159942985" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159942985">(Mar 04 2019 at 19:35)</a>:</h4>
<p>after we collect GAT usage I'll start up a thread here to start talking about whether  it makes sense to massage rustc ahead of Chalk integration or not</p>



<a name="159943067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159943067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159943067">(Mar 04 2019 at 19:36)</a>:</h4>
<p>Yeah</p>



<a name="159943229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159943229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159943229">(Mar 04 2019 at 19:38)</a>:</h4>
<p>thanks <span class="user-mention" data-user-id="116009">@nikomatsakis</span>!</p>



<a name="159943256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159943256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159943256">(Mar 04 2019 at 19:39)</a>:</h4>
<p>OK, great. I expect that for the rest of the day I'm going to be working mostly on Roadmap RFC edits, but I may try to put in a more time on the lazy norm stuff -- I'm thinking about maybe trying to make a goal of being able to walk through how norm works on Friday</p>



<a name="159943267"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159943267" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159943267">(Mar 04 2019 at 19:39)</a>:</h4>
<p>Thanks all! &lt;3</p>



<a name="159947570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159947570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159947570">(Mar 04 2019 at 20:27)</a>:</h4>
<p><a href="https://github.com/rust-lang/compiler-team/blob/master/working-groups/traits/minutes/triage-2019-03-04.md" target="_blank" title="https://github.com/rust-lang/compiler-team/blob/master/working-groups/traits/minutes/triage-2019-03-04.md">Minutes posted to internals and compiler-team repo</a></p>



<a name="159948484"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159948484" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159948484">(Mar 04 2019 at 20:39)</a>:</h4>
<blockquote>
<p>That said, <span class="user-mention silent" data-user-id="124069">Alexander Regueiro</span> and I have been talking about still pursuing some solution to the so-called "captures problem" in impl Trait, even if it turns out not to be needed in this instance.</p>
</blockquote>
<p>yeah sounds good. let me know when you want to discuss tthat.</p>



<a name="159948563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159948563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Alexander Regueiro <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159948563">(Mar 04 2019 at 20:40)</a>:</h4>
<p>and sorry, wg-traits meetings aren't the best time for me. usually around dinnertime...</p>



<a name="159980747"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/159980747" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#159980747">(Mar 05 2019 at 06:38)</a>:</h4>
<p>FCP for <code>type Foo = impl Bar;</code> is done...<br>
I've started a gist for <span class="user-mention" data-user-id="124069">@Alexander Regueiro</span> in <a href="https://gist.github.com/Centril/2470b7f89657da457ed25078a9cdab72" target="_blank" title="https://gist.github.com/Centril/2470b7f89657da457ed25078a9cdab72">https://gist.github.com/Centril/2470b7f89657da457ed25078a9cdab72</a> but it still needs a lot of work.<br>
Happy to work with <span class="user-mention" data-user-id="116010">@Aaron Turon</span> this week on GATs but I missed this meeting so we'll need to reschedule.</p>



<a name="160030181"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030181" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030181">(Mar 05 2019 at 19:01)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> will you have some time tomorrow?</p>



<a name="160030240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030240">(Mar 05 2019 at 19:02)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> what time-ish?</p>



<a name="160030335"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030335" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030335">(Mar 05 2019 at 19:03)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> sometime after 1pm pacific? is that too late for you?</p>



<a name="160030446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030446">(Mar 05 2019 at 19:04)</a>:</h4>
<p>I have a WG-Grammar meeting at 20:00-20:50 and then a T-Release meeting at 23:30-00:00; otherwise I'm free</p>



<a name="160030471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030471">(Mar 05 2019 at 19:04)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span> that is 22:00 CET which is just perfectly in the middle</p>



<a name="160030494"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030494" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Turon <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030494">(Mar 05 2019 at 19:05)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> awesome, i'll put something on our calendars</p>



<a name="160030539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/weekly%20meeting%202019-03-04/near/160030539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/weekly.20meeting.202019-03-04.html#160030539">(Mar 05 2019 at 19:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116010">@Aaron Turon</span>  much obliged</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>